package com.hospital.dao;

import com.hospital.entity.Medicine;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 药品的dao 接口
 * @author gzy
 * @date 2022/03/28
 */
public interface MedicineDao {
    /**
     * 获取所有药品信息
     * @param pageNum 页码
     * @param pageSize 每页显示的数量
     * @return 药品信息列表
     */
    List<Medicine> getAllMedicine(@Param("pageNum") Integer pageNum,
                                  @Param("pageSize") Integer pageSize);

    /**
     * 根据药品编号获取药品的详细信息
     * @param medicineId 药品编号
     * @return 药品详细信息
     */
    Medicine getMedicineDetails(String medicineId);

    /**
     * 添加药品
     * @param medicine 药品的实体
     * @return 药品是否成功添加
     */
    Integer addMedicine(Medicine medicine);

    /**
     * 多行删除：根据药品编号删除药品信息
     * @param medicineIds 药品编号列表
     * @return 删除药品删除的行数
     */
    Integer delMedicine(@Param("medicineIds") String[] medicineIds);

    /**
     * 根据药品编号修改药品信息
     * @param medicine 药品的实体
     * @return 药品是否成功修改
     */
    Integer updateMedicine(Medicine medicine);

    /**
     * 条件搜索，模糊查询：根据药品名称和类别查询对应的药品集
     * @param medicineName 药品名称
     * @param medicineType 药品类别
     * @return 药品的结果集
     */
    List<Medicine> searchMedicine(@Param("medicineName") String medicineName,
                                  @Param("medicineType") Integer medicineType);
}
